package com.fy.fyai.common.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * ChatModel 配置类
 * 用于管理多个 ChatModel bean，避免冲突
 *
 * @author fwq
 * @date 2025-10-26
 */
@Slf4j
@Configuration
public class ChatModelConfiguration {

    /**
     * 将 Ollama ChatModel 设置为主模型（默认使用）
     * 使用 @Primary 注解确保在其他地方需要 ChatModel 时优先使用 Ollama
     */
    @Bean
    @Primary
    public ChatModel chatModel(@Qualifier("ollamaChatModel") ChatModel ollamaChatModel) {
        return ollamaChatModel;
    }

    /**
     * OpenAI ChatModel Bean
     * 通过 @Qualifier 可以明确指定使用
     */
    @Bean(name = "openAiChatModelBean")
    public ChatModel openAiChatModel(@Qualifier("openAiChatModel") ChatModel openAiChatModel) {
        return openAiChatModel;
    }

    /**
     * Ollama ChatModel Bean
     * 通过 @Qualifier 可以明确指定使用
     */
    @Bean(name = "ollamaChatModelBean")
    public ChatModel ollamaChatModel(@Qualifier("ollamaChatModel") ChatModel ollamaChatModel) {
        return ollamaChatModel;
    }
}
